1. Field of the Invention
The present invention relates to the field of data sharing in computer systems. More specifically, the present invention relates to the field of providing increased flexibility and efficiency with respect to the sharing of data located in a physical information file using virtual files and can be used in the field of authoring multi-media applications.
2. Related Art
In the field of multi-media computer applications, it is often necessary for a software developer to access data stored in a physical information file. FIG. 1A illustrates the contents of an exemplary physical information file ("physical file") 80 used by a software developer. The physical file 80 is stored in a disk media (e.g., hard disk or optical disk) and accessed by a disk subsystem and includes multiple separate individual data and/or multiple separate groups of data. In the case of multi-media computer applications, the data can represent different video scenes with accompanying audio information; the scenes make up a multi-media audio/visual work. For instance, scene 1, scene 2, and scene 3 of the physical file 80 represent separate data 81, 82 and 83, respectively, while screen 45 and 46 represent separate data 85 and 86, respectively. Groups of data represent groups of scenes, e.g., scene1-scene4.
In many computer applications, including multi-media authoring systems, a software developer may want to access many separate scenes or groups of scenes from physical file 80 in random or non-sequential orderings. For instance, when generating a user interactive or "storybook" application, the order the scenes are accessed and presented depends on user selections. Therefore, when generating the possible scene presentation orders, the software developer may need to, ahead of time, access the scene information in non-sequential orders anticipating the possible user selections, e.g., scene 45 accessed, then scene n accessed, then scene 1 accessed, etc.
However, in conventional computer systems, information within the physical file 80 is not shared piecemeal but rather the entire physical file 80 is made available to an application at once. For instance, FIG. 1B illustrates a prior art file sharing methodology 30 using "symbolic link" sharing. In this type of sharing, two different applications 14 and 16 can share the data of the same physical file 80 without copying the data. A symbolic link information 12 is established linking the physical file 80 to both "file.sub.-- name1" and also "file.sub.-- name2." Application 14 accesses the data of physical file 80 using file name "file.sub.-- name1" while application 16 accesses the data of physical file 80 using file name "file.sub.-- name2." It is appreciated that data from physical file 80 is not copied, but is rather shared between application 14 and application 16. One way to conceptualize this type of sharing is to image a separate logical file 20 (called "file.sub.-- name1") established for application 14 and a separate logical file 22 (called "file.sub.-- name2") established for application 16. Neither of logical files 20 and 22 contain their own data, rather each obtains its data from the physical file 80.
Data sharing using the symbolic link methodology 30 can occur when using a tree directory. FIG. 1C illustrates a directory tree 45 maintained in a computer system for locating data in a disk subsystem and includes a root directory 50. FIG. 1C illustrates that file.sub.-- name1 60 and file.sub.-- name2 70 can exist at different locations in the directory tree 45. For instance, file.sub.-- name1 60 is within directory branch 55 while file.sub.-- name2 70 is within directory branch 65. In this case, file.sub.-- name1 60 and file.sub.-- name2 70, while pointing to the same physical file 80, actually have different names for it but share the same data.
Data sharing using the symbolic link methodology 30 of FIG. 1B is not advantageous for software developers because it provides no flexible mechanism for sharing only a single piece of data or group of data (e.g., a portion) within a physical file 80. Refer to FIG. 1A again. If the software developer only needs access to scene 45 data, then using symbolic link sharing, the entire physical file 80 needs to be opened and then searched down into until scene 45 is reached and then subsequently accessed. This inefficient searching and accessing process must be repeated each and every time a new scene or group of scenes is needed by the software developer from the physical file 80. When authoring multi-media applications, especially user interactive multi-media applications, accesses from one scene to another must be made very fast and made over and over in repetition. In this case, symbolic link sharing is much too inefficient and inflexible for practical use in the task of sharing separate files or group of separate files from a physical file 80. Therefore, what is needed is a system that allows separate data and data groups within a physical file 80 of a computer system to be flexibly and efficiently shared without copying data and that avoids the inefficient searching and accessing required of symbolic link sharing of the entire physical file 80.
Accordingly, the present invention provides a system that allows separate data and data groups within a physical file 80 of a computer system to be flexibly and efficiently shared without copying data and avoiding the inefficient searching and accessing required of symbolic link sharing. The present invention provides a system allowing efficient and flexible sharing of data and data groups that is particularly useful for multi-media applications. The present invention provides a system allowing efficient and flexible sharing of data and data groups that is particularly useful for user interactive multi-media applications. These and other advantages of the present invention not specifically mentioned above will become clear within discussions of the present invention presented herein.